Getting Started - Building the library
Dependencies
The RidgeRun Video Stabilization Library has the following dependencies for building from source:
Compulsory
A C++ compiler compatible with C++-17.
If GNUCompiler should be installed, we recommend the GNU Compiler >= 9.x.
Moreover, we use the meson building system. You can install it using:
# Install PIP sudo apt install python3 python3-pip # Install ninja sudo apt install ninja-build pkg-config # Install meson sudo pip3 install meson
Semi-Optional
The RidgeRun Video Stabilization Library is built on top of three different backends: OpenCV, OpenCL and CUDA. One of the three must exist in the system. If you are on a Debian-based system, you can install these dependencies using:
OpenCV: For all platforms for CPU execution.
sudo apt install libopencv-core* libopencv-highgui* libopencv-imgproc* libopencv-imgcodecs* libopencv-dev
OpenCL: For non-NVIDIA platforms.
sudo apt install opencl-headers
It may depend on your system
CUDA: For NVIDIA-based platforms (in progress).
sudo apt install cuda-toolkit-*
Optional
For documentation, development and plotting, you can install the following dependencies:
# For documentation sudo apt install doxygen graphviz # For plotting sudo apt install libboost-filesystem-dev libboost-system-dev libboost-iostreams-dev # For development pip3 install pre-commit sudo apt install clang-format cpp-check
In the following sections, you can see how to install the dependencies mentioned before.
GStreamer Support
The RidgeRun Video Stabilization GStreamer element depends on GStreamer Video. You can install it by:
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-bad
Building the project
Once the dependencies have been, you can run a default compilation with the following:
# When using docs git submodule update --init meson build --optimization 3 --prefix /usr -Denable-docs=disabled -Ddeveloper-mode=false ninja -C build sudo ninja -C build install
For additional customization, you may refer to the following table of options:
Configure Option | Description | Values | Default |
---|---|---|---|
-Ddeveloper-mode | Enable developer mode | true, false | true |
-Denable-docs | Enable the documentation generation | disabled, enabled | enabled |
-Denable-eval | Enable the evaluation system. | disabled, enabled | disabled |
-Denable-tests | Enable the compilation of the tests. | disabled, enabled | enabled |
-Denable-examples | Enable the compilation of the examples. | disabled, enabled | enabled |
-Denable-plots | Enable the compilation of the plotter. | disabled, enabled | enabled |
-Denable-opencv | Enable the OpenCV backend compilation (CPU processing) | disabled, enabled | enabled |
-Denable-opencl | Enable the OpenCL backend compilation (GPU processing) | disabled, enabled | enabled |
-Denable-cuda | Enable the CUDA backend compilation (GPU processing) | disabled, enabled | enabled |
-Denable-gstreamer | Enable the GStreamer plug-in | disabled, enabled | enabled |
--prefix /usr | Set the installation path of the library | PATH | /usr/local |
--optimization 3 | Set the optimization level to the maximum | 0, 1, 2, 3 | 0 |
Note: If the dependency is not found, it will skip the compilation, and a message will be shown during the construction.
Testing the project
You can test the final construction results of the library using the test suite:
ninja -C builddir test
Moreover, if the examples were enabled, you can run them as well: Examples Guidebook
Using the library for your app
A simple application without options, can be compiled using:
g++ -o app app.cpp $(pkg-config rvs --cflags --libs)
where app.cpp is the app to compile and uses the RidgeRun Video Stabilization Library.
You can use pkg-config
with the package name of rvs
. The library has to be installed previously.